home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 1 / Macwelt DVD 1.toast / Software für Mac-OS X / Entwickler-Tools / netbeans / modules / ext / djava.jar / koala / dynamicjava / classinfo / TreeConstructorInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-03-14  |  2.8 KB  |  71 lines

  1. package koala.dynamicjava.classinfo;
  2.  
  3. import java.util.Iterator;
  4. import java.util.List;
  5. import koala.dynamicjava.tree.ConstructorDeclaration;
  6. import koala.dynamicjava.tree.FormalParameter;
  7.  
  8. public class TreeConstructorInfo implements ConstructorInfo {
  9.    private ConstructorDeclaration constructorTree;
  10.    private ClassFinder classFinder;
  11.    private ClassInfo[] parameters;
  12.    private ClassInfo[] exceptions;
  13.    private ClassInfo declaringClass;
  14.    private TypeVisitor typeVisitor;
  15.  
  16.    public ConstructorDeclaration getConstructorDeclaration() {
  17.       return this.constructorTree;
  18.    }
  19.  
  20.    public int getModifiers() {
  21.       return this.constructorTree.getAccessFlags();
  22.    }
  23.  
  24.    public ClassInfo[] getParameterTypes() {
  25.       if (this.parameters == null) {
  26.          List var1 = this.constructorTree.getParameters();
  27.          Iterator var2 = var1.iterator();
  28.          this.parameters = new ClassInfo[var1.size()];
  29.  
  30.          FormalParameter var4;
  31.          for(int var3 = 0; var2.hasNext(); this.parameters[var3++] = (ClassInfo)var4.getType().acceptVisitor(this.typeVisitor)) {
  32.             var4 = (FormalParameter)var2.next();
  33.          }
  34.       }
  35.  
  36.       return (ClassInfo[])this.parameters.clone();
  37.    }
  38.  
  39.    public ClassInfo[] getExceptionTypes() {
  40.       if (this.exceptions == null) {
  41.          List var1 = this.constructorTree.getExceptions();
  42.          Iterator var2 = var1.iterator();
  43.          this.exceptions = new ClassInfo[var1.size()];
  44.  
  45.          for(int var3 = 0; var2.hasNext(); this.exceptions[var3++] = this.lookupClass((String)var2.next(), this.declaringClass)) {
  46.          }
  47.       }
  48.  
  49.       return (ClassInfo[])this.exceptions.clone();
  50.    }
  51.  
  52.    public boolean equals(Object var1) {
  53.       return var1 != null && var1 instanceof TreeConstructorInfo ? this.constructorTree.equals(((TreeConstructorInfo)var1).constructorTree) : false;
  54.    }
  55.  
  56.    private ClassInfo lookupClass(String var1, ClassInfo var2) {
  57.       try {
  58.          return var2 == null ? this.classFinder.lookupClass(var1, var2) : this.classFinder.lookupClass(var1);
  59.       } catch (ClassNotFoundException var4) {
  60.          throw new NoClassDefFoundError(var4.getMessage());
  61.       }
  62.    }
  63.  
  64.    public TreeConstructorInfo(ConstructorDeclaration var1, ClassFinder var2, ClassInfo var3) {
  65.       this.constructorTree = var1;
  66.       this.classFinder = var2;
  67.       this.declaringClass = var3;
  68.       this.typeVisitor = new TypeVisitor(this.classFinder, this.declaringClass);
  69.    }
  70. }
  71.